package com.sgs.carbon.web.modules.common.convert.user;

import com.sgs.carbon.web.modules.common.controller.user.vo.base.SysUserCreateReqVO;
import com.sgs.carbon.web.modules.common.controller.user.vo.base.SysUserExcelVO;
import com.sgs.carbon.web.modules.common.controller.user.vo.base.SysUserImportExcelVO;
import com.sgs.carbon.web.modules.common.controller.user.vo.base.SysUserPageItemRespVO;
import com.sgs.carbon.web.modules.common.controller.user.vo.base.SysUserUpdateReqVO;
import com.sgs.carbon.web.modules.common.controller.user.vo.profile.SysUserProfileRespVO;
import com.sgs.carbon.web.modules.common.controller.user.vo.profile.SysUserProfileUpdatePasswordReqVO;
import com.sgs.carbon.web.modules.common.controller.user.vo.profile.SysUserProfileUpdateReqVO;
import com.sgs.carbon.web.modules.common.dal.dataobject.dept.SysDeptDO;
import com.sgs.carbon.web.modules.common.dal.dataobject.permission.SysRoleDO;
import com.sgs.carbon.web.modules.common.dal.dataobject.user.SysUserDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * @see <a href="https://github.com/mapstruct/mapstruct"><b>mapstruct</b></a>
 *
 * @author Dave Liu
 * @date 2021-10-06
 */
@Mapper
public interface SysUserConvert {

    SysUserConvert INSTANCE = Mappers.getMapper(SysUserConvert.class);

    SysUserPageItemRespVO convert(SysUserDO bean);

    SysUserPageItemRespVO.Dept convert(SysDeptDO bean);

    SysUserDO convert(SysUserCreateReqVO bean);

    SysUserDO convert(SysUserUpdateReqVO bean);

    SysUserExcelVO convert02(SysUserDO bean);

    SysUserDO convert(SysUserImportExcelVO bean);

    SysUserProfileRespVO convert03(SysUserDO bean);

    List<SysUserProfileRespVO.Role> convertList(List<SysRoleDO> list);

    SysUserProfileRespVO.Dept convert02(SysDeptDO bean);

    SysUserDO convert(SysUserProfileUpdateReqVO bean);

    SysUserDO convert(SysUserProfileUpdatePasswordReqVO bean);

}
